package xcu.lxj.nettychat.chat.service.inter;

import xcu.lxj.nettychat.chat.domain.vo.request.ChatMessageMemberReq;
import xcu.lxj.nettychat.chat.domain.vo.request.GroupAddReq;
import xcu.lxj.nettychat.chat.domain.vo.request.member.MemberAddReq;
import xcu.lxj.nettychat.chat.domain.vo.request.member.MemberDelReq;
import xcu.lxj.nettychat.chat.domain.vo.request.member.MemberReq;
import xcu.lxj.nettychat.chat.domain.vo.response.ChatMemberListResp;
import xcu.lxj.nettychat.chat.domain.vo.response.ChatMemberResp;
import xcu.lxj.nettychat.chat.domain.vo.response.ChatRoomResp;
import xcu.lxj.nettychat.chat.domain.vo.response.MemberResp;
import xcu.lxj.nettychat.common.domain.vo.request.CursorPageBaseReq;
import xcu.lxj.nettychat.common.domain.vo.response.CursorPageBaseResp;

import java.util.List;

/**
 * @Author XinJian Lei
 * @Date 2024/10/7 11:01
 * @Version 1.0
 */
public interface RoomAppService {
    /**
     * 获取会话列表
     */
    CursorPageBaseResp<ChatRoomResp> getContactPage(CursorPageBaseReq request, Long uid);

    /**
     * 获取联系会话详情
     */
    ChatRoomResp getContactDetail(Long uid, Long roomId);

    /**
     * 通过好友获取聊天会话详情
     */
    ChatRoomResp getContactDetailByFriend(Long uid, Long friendUid);

    /**
     * 获取群组信息
     */
    MemberResp getGroupDetail(Long uid, long roomId);

    /**
     * 获得成员 分页查询
     */
    CursorPageBaseResp<ChatMemberResp> getMemberPage(MemberReq request);

    /**
     * 获得成员列表
     */
    List<ChatMemberListResp> getMemberList(ChatMessageMemberReq request);

    /**
     * 删除成员
     */
    void delMember(Long uid, MemberDelReq request);

    /**
     * 添加成员
     */
    void addMember(Long uid, MemberAddReq request);

    /**
     * 增加群聊
     */
    Long addGroup(Long uid, GroupAddReq request);
}
